<?php
/**
 * SDOBlacklistService 黑名单相关接口
 * 底层接口联系人 杨建东
 * 服务地址IP=114.80.135.7    端口=1234
 * 测试 URL http://114.80.135.7:8080/doc/index.html
 * @category   SDO
 * @package    PeopleService
 * @author     ggg <wangweijun01@snda.com> 2010-3-25 17:00
 * @copyright  SDO OP
 * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License
 * @link       http://www.sdo.com/
 * @since      File available since Release 1.0.0
 */

include_once(dirname(__FILE__).'/SDOSocket.php');
include_once(dirname(__FILE__).'/SDOApiHelper.php');

class SDOBlacklistService {



 	/**
	 * 添加一个用户到黑名单
	 * 添加一个用户（ssdid） 到自己（sdid）的黑名单，被添加用户可以为陌生人（即相互没有单向关注关系）
	 * @param Long		$sdid       	黑名单所有者sdid
	 * @param Long		$ssdid       	被拉进黑名单的用户sdid
	 * @return  Array
	 */
	static public function addPersonToBlacklist($sdid,$ssdid)
	{
		$api_name	= 'BlacklistService.addPersonToBlacklist';
		
		$api_param	= array(
			'sdid' =>          $sdid
			,'ssdid' =>          $ssdid
		);		
		return self::send($api_name,$api_param);

	}


 	/**
	 * 查询我的黑名单列表 
	 * 根据用户数字账号查询的黑名单列表
	 * @param Long		$sdid       	指定用户的数字账号
	 * @return  Array
	 */
	static public function getMyBlacklist($sdid)
	{
		$api_name	= 'BlacklistService.getMyBlacklist';
		
		$api_param	= array(
			'sdid' =>          $sdid
		);		
		return self::send($api_name,$api_param);

	}


	/**
	 * 查询黑名单中用户个数
	 * 根据用户账号获得该用户黑名单中用户个数
	 * @param Long		$sdid       	指定用户的数字账号
	 * @return  Array
	 */
	static public function getBlacklistCount($sdid)
	{
		$api_name	= 'BlacklistService.getBlacklistCount';
		
		$api_param	= array(
			'sdid' =>          $sdid
		);		
		return self::send($api_name,$api_param);

	}


 	/**
	 * 查询反向关系
	 * 根据两个用户的数字账号（sdid，ssdid）来判断ssdid 是否在sdid 的黑名单中。
	 * @param Long		$sdid       	指定用户的数字账号
	 * @param Long		$ssdid       	被判断的用户账号
	 * @return  Array
	 */
	static public function getJudgePerson($sdid,$ssdid='')
	{
		$api_name	= 'BlacklistService.getJudgePerson';
		
		$api_param	= array(
			'sdid' =>          $sdid
			,'ssdid' =>          $ssdid
		);		
		return self::send($api_name,$api_param);

	}


 	/**
	 * 查询我被谁屏蔽
	 * 查询一个用户被哪些sdid 屏蔽
	 * @param Long		$sdid       	指定用户的数字账号
	 * @return  Array
	 */
	static public function getWhoShieldMe($sdid)
	{
		$api_name	= 'BlacklistService.getWhoShieldMe';
		
		$api_param	= array(
			'sdid' =>          $sdid
		);		
		return self::send($api_name,$api_param);

	}


 	/**
	 * 把一个用户移出黑名单
	 * 把一个用户从黑名单中移除。
	 * @param Long		$sdid       	黑名单所有者
	 * @param Long		$ssdid       	要移出的用户sdid
	 * @return  Array
	 */
	static public function deletePersonOutBlacklist($sdid,$ssdid)
	{
		$api_name	= 'BlacklistService.deletePersonOutBlacklist';
		
		$api_param	= array(
			'sdid' =>          $sdid
			,'ssdid' =>          $ssdid
		);		
		return self::send($api_name,$api_param);

	}


 	/**
	 * 移除黑名单中所有用户
	 * 清空一个用户黑名单中所有的用户。
	 * @param Long		$sdid       	黑名单的所有者
	 * @return  Array
	 */
	static public function deleteAll($sdid)
	{
		$api_name	= 'BlacklistService.deleteAll';
		
		$api_param	= array(
			'sdid' =>          $sdid
		);		
		return self::send($api_name,$api_param);

	}


   /**
     * 向服务器端发起请求
     * @param String $apiName API名称
     * @param Array $apiParam API相关参数
     * 返回调用的结果
     *
     */
    static public function send($apiName,$apiParam)
    {
        //$result   = SDOSocket::httpRequest($apiName,$apiParam);
        $result = SDOSocket::send($apiName,$apiParam);
        return $result;
    }
    
   /*
     * 检查返回是否正常
     * @param $result 调用send后的结果
     * @param $Error 返回错误码与信息
     * @return boolean
     */
    static function isError(&$result, &$Error = NULL)
    {
        return SDOSocket::isError($result,$Error);
    }

}